package br.com.nemesis.web;

import br.com.nemesis.dao.BairroDAO;
import br.com.nemesis.dao.CidadeDAO;
import br.com.nemesis.excecao.PersistenciaExcecao;
import br.com.nemesis.jsf.util.FacesUtil;
import br.com.nemesis.modelo.Bairro;
import br.com.nemesis.modelo.Cidade;
import br.com.nemesis.modelo.Usuario;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;

@ManagedBean(name = "sessao")
@SessionScoped
public class Sessao implements Serializable {

    private Usuario usuario;
    private Cidade cidade;
    private Bairro bairro;

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public Cidade getCidade() {
        return cidade;
    }

    public void setCidade(Cidade cidade) {
        this.cidade = cidade;
    }

    public Bairro getBairro() {
        return bairro;
    }

    public void setBairro(Bairro bairro) {
        this.bairro = bairro;
    }

    public List<SelectItem> getCidades() {
        List<SelectItem> cidades = new ArrayList<SelectItem>();
        try {
            CidadeDAO cidadeDAO = new CidadeDAO();
            for (Cidade c : cidadeDAO.listar(null)) {
                cidades.add(new SelectItem(c, c.getNome()));
            }
        } catch (PersistenciaExcecao e) {
            FacesUtil.msgErro(e.getClass().getName() + ": " + e.getMessage());
        }
        return cidades;
    }

    public List<SelectItem> getBairros() {
        List<SelectItem> bairros = new ArrayList<SelectItem>();
        try {
            BairroDAO bairroDAO = new BairroDAO();
            for (Bairro b : bairroDAO.listar(cidade)) {
                bairros.add(new SelectItem(b, b.getNome()));
            }
        } catch (PersistenciaExcecao e) {
            FacesUtil.msgErro(e.getClass().getName() + ": " + e.getMessage());
        }
        return bairros;
    }
    
}